package dados;


import gui.Tela;

import java.io.File;
import java.io.IOException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import javax.swing.text.html.parser.Parser;

import ch.ethz.ssh2.Connection;

import util.FabricaConeccaoUNIX;
import util.FcdgUtil;

public class BaseDados {

	public static String montarWhere(String pesquisa, String pesquisa2) {
		String where = null;
		if (pesquisa.indexOf(",") == 0 || pesquisa.indexOf(",") == 0
				|| pesquisa2.length() == 0) {
			where = "and fh.seq IN ( " + pesquisa + " )";
		} else {
			where = "and fh.seq  BETWEEN " + pesquisa + " and " + pesquisa2
					+ "";
		}

		return where;
	}

	public static ResultSet dadosBase(String url, String where) {
		ResultSet rs = null;

		// String sql =
		// "SELECT fhd.path , fhd.file_name , fh.uf_id FROM fcdg_history_det fhd, fcdg_history fh"
		// +
		// " WHERE fhd.seq = fh.seq and fh.seq IN ( 253313, 253322, 253330 ) ";

		String sql = "SELECT fhd.path , fhd.file_name , fh.uf_id FROM fcdg_history_det fhd, fcdg_history fh"
				+ " WHERE fhd.seq = fh.seq " + where;

		PreparedStatement stm;
		try {
			stm = FabricaConeccaoJDBC.obterConeccaoBD(url)
					.prepareStatement(sql);
			rs = stm.executeQuery();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return rs;
	}

	public static void copyBase(ResultSet rs, String destino, String hostname,
			String username, String password, Tela tela) {

		try {

			while (rs.next()) {
				String path = rs.getString("path");
				String file_name = rs.getString("file_name");
				String uf_id = rs.getString("uf_id");

				String origem = path + "/" + file_name;
				String saida = destino.toString() + File.separator + uf_id
						+ File.separator + file_name;

				// Criar o diretorio de destino por estado
				new File(destino.toString() + File.separator + uf_id).mkdirs();

				// Gerando conexcao com Unix
				Connection conUNIX = FabricaConeccaoUNIX.conectaUnix(hostname,
						username, password);

				// Pegando dados do arquivo de Origem
				StringBuffer dadosArquivo = FabricaConeccaoUNIX
						.dadosArquivoUnix(conUNIX, origem);

				// Salvando o arquivo de Destino com os dados do arquivo de
				// Origem
				FcdgUtil.salvarArquivo(dadosArquivo, saida);
				tela.setInformativo("Arquivo: "+origem + " Copiado para: "+ saida);
				System.out.println("Arquivo: "+origem + " Copiado para: "+ saida);
						}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
